home *** CD-ROM | disk | FTP | other *** search
/ You're the Director / You're The Director.iso / pc / inc / qtw.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-19  |  30.5 KB  |  719 lines

  1.  
  2.  
  3. // ---------------------------------------------------------------------
  4. //
  5. // QTW.H - QuickTime for Windows C and C++ Bindings
  6. //
  7. //         Version 2.0
  8. //
  9. //         (c) Copyright 1988-1994 Apple Computer, Inc. All Rights Reserved.
  10. //
  11. // ---------------------------------------------------------------------
  12.  
  13.  
  14. // Prevent multiple inclusion
  15. // --------------------------
  16. #ifndef __QTW_H__
  17. #define __QTW_H__
  18.  
  19.  
  20. // Movie Controller MCDoAction action constants
  21. // --------------------------------------------
  22. typedef enum
  23.   {mcActionIdle                   =  1, // No Param
  24.    mcActionDraw                   =  2, // No Param
  25.    mcActionActivate               =  3, // No param
  26.    mcActionDeactivate             =  4, // No param
  27.    mcActionMouseDown              =  5, // Param is pointer to EventRecord
  28.    mcActionKey                    =  6, // Param is pointer to MSG
  29.    mcActionPlay                   =  8, // Param is LFIXED play rate
  30.    mcActionGoToTime               = 12, // Param is pointer to TimeRecord
  31.    mcActionSetVolume              = 14, // Param is SFIXED volume
  32.    mcActionGetVolume              = 15, // Param is pointer to SFIXED volume
  33.    mcActionStep                   = 18, // Param is LONG number of steps
  34.    mcActionSetLooping             = 21, // Param is a Boolean
  35.    mcActionGetLooping             = 22, // Param is pointer to a Boolean
  36.    mcActionSetLoopIsPalindrome    = 23, // Param is Boolean
  37.    mcActionGetLoopIsPalindrome    = 24, // Param is pointer to a Boolean
  38.    mcActionSetGrowBoxBounds       = 25, // Param is pointer to a Rect
  39.    mcActionControllerSizeChanged  = 26, // No param
  40.    mcActionSetSelectionBegin      = 29, // Param is pointer to TimeRecord
  41.    mcActionSetSelectionDuration   = 30, // Param is pointer to TimeRecord
  42.    mcActionSetKeysEnabled         = 32, // Param is Boolean
  43.    mcActionGetKeysEnabled         = 33, // Param is pointer to Boolean
  44.    mcActionSetPlaySelection       = 34, // Param is Boolean
  45.    mcActionGetPlaySelection       = 35, // Param is pointer to Boolean
  46.    mcActionSetUseBadge            = 36, // Param is Boolean
  47.    mcActionGetUseBadge            = 37, // Param is pointer to Boolean
  48.    mcActionSetFlags               = 38, // Param is LONG flags
  49.    mcActionGetFlags               = 39, // Param is pointer to LONG flags
  50.    mcActionSetPlayEveryFrame      = 40, // Param is Boolean
  51.    mcActionGetPlayEveryFrame      = 41, // Param is pointer to Boolean
  52.    mcActionGetPlayRate            = 42, // Param is pointer to LFIXED
  53.    mcActionBadgeClick             = 44, // Param is pointer to Boolean
  54.    mcActionMovieClick             = 45, // Param is pointer to event structure
  55.    mcActionGetTimeSliderRect      = 49, // Param is pointer to RECT
  56.    mcActionGetSelectionBegin      = 53, // Param is pointer to TimeRecord
  57.    mcActionGetSelectionDuration   = 54  // Param is pointer to TimeRecord
  58.   } mcActionType;
  59.  
  60.  
  61. // Movie Controller MCDoAction, action McActionSetFlags parameter, movie
  62. // controller structure parameter, lfActionFlags
  63. // ---------------------------------------------------------------------
  64. typedef enum
  65.   {mcFlagSuppressStepButtons      = 1<<1,
  66.    mcFlagSuppressSpeakerButton    = 1<<2,
  67.    mcFlagsUseWindowPalette        = 1<<3
  68.   } mcActionFlags;
  69.  
  70.  
  71. // Toolbox function NewMovieController and Movie Controller function
  72. // MCPositionController parameter controllerCreationFlags values,
  73. // movie controller structure parameter, lfControllerStateFlags
  74. // -----------------------------------------------------------------
  75. typedef enum
  76.   {mcTopLeftMovie                 = 1<<0,
  77.    mcScaleMovieToFit              = 1<<1,
  78.    mcWithBadge                    = 1<<2,
  79.    mcNotVisible                   = 1<<3
  80.   } mcControllerStateFlags;
  81.  
  82.  
  83. // Movie Controller function MCGetControllerInfo parameter mcInfoFlags
  84. // parameter, movie controller structure parameter, lfControllerInfoFlags
  85. // ----------------------------------------------------------------------
  86. typedef enum
  87.   {mcInfoHasSound                 = 1<<5,
  88.    mcInfoIsPlaying                = 1<<6,
  89.    mcInfoIsLooping                = 1<<7,
  90.    mcInfoIsInPalindrome           = 1<<8
  91.   } mcControllerInfoFlags;
  92.  
  93.  
  94. // NewMovieFromFile flags
  95. // ----------------------
  96. typedef enum
  97.   {newMovieActive                 = 1<<0,
  98.    newMovieDontResolveDataRefs    = 1<<1,
  99.    newMovieDontAskUnresolvedDataRefs = 1<<2,
  100.    newMovieDontAutoAlternates     = 1<<3
  101.   } newMovieFlags;
  102.  
  103.  
  104. // Flags for SetMoviePlayHints
  105. // ---------------------------
  106. typedef enum
  107.   {hintsScrubMode                 = 1<<1,
  108.    hintsInterpolateSound          = 1<<7,
  109.    hintsInactive                  = 1<<11
  110.   } moviePlayHints;
  111.  
  112.  
  113. // Flags for MovieSearchText
  114. // -------------------------
  115.  
  116. #define findTextEdgeOK                (1L << 0)
  117. #define findTextCaseSensitive         (1L << 1)
  118. #define findTextReverseSearch         (1L << 2)
  119. #define findTextWrapAround            (1L << 3)
  120. #define findTextUseOffset             (1L << 4)
  121. #define searchTextDontGoToFoundTime   (1L << 16)
  122. #define searchTextDontHiliteFoundText (1L << 17)
  123. #define searchTextOneTrackOnly        (1L << 18) /*ignored*/
  124. #define searchTextEnabledTracksOnly   (1L << 19)
  125.  
  126.  
  127. // Flags for GetMovieIndTrackType
  128. typedef enum
  129.   {movieTrackMediaType        = 1<<0,
  130.    movieTrackCharacteristic   = 1<<1,
  131.    movieTrackEnabledOnly      = 1<<2
  132.   } movieIndTrackTypeFlags;
  133.  
  134. #define VideoMediaType  QTFOURCC('v','i','d','e')
  135. #define SoundMediaType  QTFOURCC('s','o','u','n')
  136. #define TextMediaType   QTFOURCC('t','e','x','t')
  137. #define MPEGMediaType   QTFOURCC('m','p','e','g')
  138. #define MusicMediaType  QTFOURCC('m','u','s','i')
  139.  
  140. // Manifest constants for ostypes as flags for Component Manager calls
  141. // -------------------------------------------------------------------
  142. #define kAnyComponentType           0
  143. #define kAnyComponentSubType        0
  144. #define kAnyComponentManufacturer   0
  145. #define kAnyComponentFlagsMask      0
  146.  
  147.  
  148. // SetDefaultComponent Flags
  149. // -------------------------
  150. typedef enum
  151.   {defaultComponentIdentical        = 0,
  152.    defaultComponentAnyFlags         = 1,
  153.    defaultComponentAnyManufacturer  = 2,
  154.    defaultComponentAnySubType       = 4
  155.   } defaultComponentFlags;
  156.  
  157.  
  158. // RegisterComponent Flags
  159. // -----------------------
  160. typedef enum
  161.   {registerComponentGlobal          = 1,
  162.    registerComponentNoDuplicates    = 2,
  163.    registerComponentAfterExisting   = 4
  164.   } registerComponentFlags;
  165.  
  166. // putMovieIntoTypedHandle
  167. // -----------------------
  168. typedef enum
  169.   {
  170.     pmithHandleIsPointerToHandle    = 1
  171.   } pmithFlags;
  172.  
  173.  
  174. // Error codes
  175. // -------------
  176. enum
  177.   {
  178.    // Shared by QTW and QT Mac
  179.    readErr                        = -19,
  180.    paramErr                       = -50,
  181.    noTypeErr                      = -102,
  182.    insufficientMemory             = -108,
  183.    memWZErr                       = -111,
  184.    notLockedErr                   = -623,
  185.    couldNotResolveDataRef         = -2000,
  186.    badImageDescription            = -2001,
  187.    badPublicMovieAtom             = -2002,
  188.    cantFindHandler                = -2003,
  189.    cantOpenHandler                = -2004,
  190.    badComponentType               = -2005,
  191.    noMediaHandler                 = -2006,
  192.    noDataHandler                  = -2007,
  193.    invalidMedia                   = -2008,
  194.    invalidTrack                   = -2009,
  195.    invalidMovie                   = -2010,
  196.    invalidSampleTable             = -2011,
  197.    invalidDataRef                 = -2012,
  198.    invalidHandler                 = -2013,
  199.    invalidDuration                = -2014,
  200.    invalidTime                    = -2015,
  201.    cantPutPublicMovieAtom         = -2016,
  202.    badEditList                    = -2017,
  203.    mediaTypesDontMatch            = -2018,
  204.    progressProcAborted            = -2019,
  205.    movieToolboxUninitialized      = -2020,
  206.    wffileNotFound                 = -2021,
  207.    cantCreateSingleForkFile       = -2022,
  208.    invalidEditState               = -2023,
  209.    nonMatchingEditState           = -2024,
  210.    staleEditState                 = -2025,
  211.    userDataItemNotFound           = -2026,
  212.    maxSizeToGrowTooSmall          = -2027,
  213.    badTrackIndex                  = -2028,
  214.    trackIDNotFound                = -2029,
  215.    trackNotInMovie                = -2030,
  216.    timeNotInTrack                 = -2031,
  217.    timeNotInMedia                 = -2032,
  218.    badEditIndex                   = -2033,
  219.    internalQuickTimeError         = -2034,
  220.    cantEnableTrack                = -2035,
  221.    invalidRect                    = -2036,
  222.    invalidSampleNum               = -2037,
  223.    invalidChunkNum                = -2038,
  224.    invalidSampleDescIndex         = -2039,
  225.    invalidChunkCache              = -2040,
  226.    invalidSampleDescription       = -2041,
  227.    dataNotOpenForRead             = -2042,
  228.    dataNotOpenForWrite            = -2043,
  229.    dataAlreadyOpenForWrite        = -2044,
  230.    dataAlreadyClosed              = -2045,
  231.    endOfDataReached               = -2046,
  232.    dataNoDataRef                  = -2047,
  233.    noMovieInDataFork              = -2048,
  234.    invalidDataRefContainer        = -2049,
  235.    badDataRefIndex                = -2050,
  236.    noDefaultDataRef               = -2051,
  237.    couldNotUseAnExistingSample    = -2052,
  238.    featureUnsupported             = -2053,
  239.    noVideoTrackInMovie            = -2054,
  240.    noSoundTrackInMovie            = -2055,
  241.    movieTextNotFound              = -2062,
  242.  
  243.    // -2150 through -2200 reserved for QTW
  244.    soundSupportNotAvailable       = -2150,
  245.    maxControllersExceeded         = -2152,
  246.    unableToCreateMCWindow         = -2153,
  247.    invalidUserDataHandle          = -2154,
  248.    noPictureInFile                = -2155,
  249.    invalidPictureFileHandle       = -2156,
  250.    invalidPictureHandle           = -2157,
  251.    badDisplayContext              = -2158,
  252.    noMusicTrackInMovie            = -2159,
  253.    noTextTrackInMovie             = -2160,
  254.    noMPEGTrackInMovie             = -2161,
  255.  
  256.    // Shared by QTW and QT Mac
  257.    invalidComponentID             = -3000,
  258.    validInstancesExist            = -3001,
  259.    componentNotCaptured           = -3002,
  260.    componentDontRegister          = -3003,
  261.  
  262.    // Odds and ends used by QTW only
  263.    noErr                          = 0,
  264.    mcOK                           = 0,
  265.    mcEventNotHandled              = 0,
  266.    mcEventHandled                 = 1,
  267.    codecConditionErr              = -8972,
  268.    controllerBoundsNotExact       = -9996,
  269.    editingNotAllowed              = -9995
  270.   };
  271.  
  272.  
  273. // QTInitialize error codes
  274. // ------------------------
  275. enum
  276.   {QTI_OK                         = 0,
  277.    QTI_FAIL_NOEXIST               = 1,
  278.    QTI_FAIL_CORRUPTDLL            = 2,
  279.    QTI_FAIL_286                   = 3,
  280.    QTI_FAIL_WIN30                 = 4
  281.   };
  282.  
  283.  
  284. // Component Manager error codes
  285. // -----------------------------
  286. #define badComponentInstance    0x80008001
  287. #define badComponentSelector    0x80008002
  288.  
  289.  
  290. // Special MCI Interface
  291. // ---------------------
  292. #define MCI_QTW_PLAY_WINDOW     0x01000000L
  293. #define MCI_QTW_PLAY_FULLSCREEN 0x02000000L
  294. #define MCI_QTW_SET_USE_MC      0x00100000L
  295. #define MCI_QTW_SET_PAL_ASSERT  0x00200000L
  296. #define MCI_QTW_SET_GROWBOX     0x00400000L
  297.  
  298.  
  299. // Declared handles
  300. // ----------------
  301. DECLARE_HANDLE(UserData);              // Hungarian: ud
  302. DECLARE_HANDLE(PicHandle);             // Hungarian: ph
  303. DECLARE_HANDLE(DIBHandle);             // Hungarian: dh
  304. DECLARE_HANDLE(PicFile);               // Hungarian: pic
  305. DECLARE_HANDLE(MovieFile);             // Hungarian: mov
  306.  
  307.  
  308. // Typedef's
  309. // ---------
  310. typedef LONG ComponentResult;          // Hungarian: cr
  311. typedef LONG OSErr;                    // Hungarian: oserr
  312. typedef LONG OSType;                   // Hungarian: ostype
  313. typedef void far *ProgressProcRecordPtr; // Hungarian: pprp
  314. typedef LONG TimeScale;                // Hungarian: ts
  315. typedef DWORD TimeValue;               // Hungarian: tv
  316. typedef LONG LFIXED;                   // Hungarian: lfx
  317. typedef LONG Fixed;                    // Hungarian: fx
  318. typedef short SFIXED;                  // Hungarian: sfx
  319. typedef BOOL Boolean;
  320. typedef HWND WindowPtr;
  321. typedef LPBYTE Ptr;
  322. typedef void far *AlignmentProcRecordPtr;
  323.  
  324. struct Point {
  325.     short                       v;
  326.     short                       h;
  327. };
  328. typedef struct Point Point;
  329.  
  330. typedef struct _tagRect {
  331.    short        boxTop ;            // default text box
  332.    short        boxLeft ;
  333.    short        boxBottom ;
  334.    short        boxRight ;
  335. } Rect;
  336.  
  337. enum  {
  338.     nullEvent                   = 0,
  339.     mouseDown                   = 1,
  340.     mouseUp                     = 2,
  341.     keyDown                     = 3,
  342.     keyUp                       = 4,
  343.     autoKey                     = 5,
  344.     updateEvt                   = 6,
  345.     diskEvt                     = 7,
  346.     activateEvt                 = 8,
  347.     osEvt                       = 15,
  348. /* event mask equates */
  349.     mDownMask                   = 2,
  350.     mUpMask                     = 4,
  351.     keyDownMask                 = 8,
  352.     keyUpMask                   = 16,
  353.     autoKeyMask                 = 32,
  354.     updateMask                  = 64,
  355.     diskMask                    = 128,
  356.     activMask                   = 256,
  357.     highLevelEventMask          = 1024,
  358.     osMask                      = -32768
  359. };
  360.  
  361. struct EventRecord {
  362.     short                       what;
  363.     long                        message;
  364.     long                        when;
  365.     Point                       where;
  366.     short                       modifiers;
  367. };
  368. typedef struct EventRecord EventRecord;
  369.  
  370. typedef struct _tagInt64               // Hungarian: qw (quad word)
  371.   {DWORD dwLo;
  372.    LONG  dwHi;
  373.   } Int64;
  374.  
  375. typedef struct _tagOpenCPicParms       // Hungarian: ocp
  376.   {RECT   rect;
  377.    LFIXED hRes;
  378.    LFIXED vRes;
  379.    WORD   wVersion;
  380.    WORD   wReserved1;
  381.    DWORD  dwReserved2;
  382.   } OpenCPicParams;
  383.  
  384. typedef struct _tagTimeBaseRecord      // Hungarian: tbr
  385.   {DWORD FAR *p;
  386.   } TimeBaseRecord;
  387.  
  388. typedef TimeBaseRecord FAR *TimeBase;  // Hungarian: tb
  389.  
  390. #define TIMEBASE_DEFAULT ((TimeBase) 0L)
  391.  
  392. typedef struct _tagTimeRecord          // Hungarian: tr
  393.   {Int64     value;
  394.    TimeScale scale;
  395.    TimeBase  base;
  396.   } TimeRecord;
  397.  
  398. typedef struct MatrixRecord {          // Hungarian: mrec
  399.     Fixed matrix[3][3];
  400. } MatrixRecord;
  401.  
  402. typedef struct _tagSoundDescription    // Hungarian: sd (SoundDescription)
  403.   {LONG  descSize;                     // structure size
  404.    DWORD dataFormat;                   // 'raw ','twos','ima4'
  405.    DWORD resvd1;                       // always 0
  406.    WORD  resvd2;                       // always 0
  407.    WORD  dataRefIndex;                 // always 1
  408.    WORD  version;                      // always 0
  409.    WORD  revLevel;                     // always 0
  410.    DWORD vendor;                       // always 0
  411.    WORD  numChannels;                  // 1=mono; 2=stereo
  412.    WORD  sampleSize;                   // 8=8bit sound; 16=16bit sound
  413.    WORD  compressionID;                // always 0
  414.    WORD  packetSize;                   // always 0
  415.    LFIXED sampleRate;                  // eg: 44100.0000 per second
  416.   } SoundDescription;
  417.  
  418. typedef struct _tagMusicDescription    // Hungarian: md (MusicDescription)
  419.   {LONG  descSize;                     // structure size
  420.    DWORD dataFormat;                   // always 'musi'
  421.    DWORD resvd1;                       // always 0
  422.    WORD  resvd2;                       // always 0
  423.    WORD  dataRefIndex;                 // always 1
  424.    DWORD musicFlags;                   // always 0
  425.   } MusicDescription;
  426.  
  427. typedef struct _tagRGBColor {
  428.     unsigned short  red;             /*magnitude of red component*/
  429.     unsigned short  green;          /*magnitude of green component*/
  430.     unsigned short  blue;           /*magnitude of blue component*/
  431. } RGBColor;
  432.  
  433. typedef unsigned char Style;
  434.  
  435. typedef struct _tagScrpSTElement {
  436.     long                        scrpStartChar;                  /*starting character position*/
  437.     short                       scrpHeight;                     /*starting character position*/
  438.     short                       scrpAscent;
  439.     short                       scrpFont;
  440.     Style                       scrpFace;                       /*unpacked byte*/
  441.     char                        filler;                         /*scrpFace is unpacked byte*/
  442.     short                       scrpSize;
  443.     RGBColor                    scrpColor;
  444. } ScrpSTElement;
  445.  
  446. typedef struct _tagTextDescription {
  447.    long         descSize;
  448.    long         dataFormat;             // = 'text'
  449.    long         resvd1;
  450.    short        resvd2;
  451.    short        dataRefIndex;
  452.    long         displayFlags;
  453.    long         textJustification;
  454.    RGBColor     bgColor ;               // red, green, blue
  455.    Rect         defaultTextBox;
  456.    ScrpSTElement defaultStyle;          // default style
  457.    char         defaultFontName[ 1] ;   // pascal string ... struct is sized to fit the string
  458. } TextDescription;
  459.  
  460. typedef struct _tagMPEGDescription {
  461.     long descSize;
  462.     long dataFormat;
  463.     long resvd1;
  464.     short resvd2;
  465.     short dataRefIndex;
  466. } MPEGDescription;
  467.  
  468. typedef struct _tagImageDescription    // Hungarian: id (ImageDescription)
  469.   {LONG  idSize;                       // structure size
  470.    DWORD CodecType;                    // 'rpza', 'jpeg', 'rle ', 'raw ', 'smc', 'cvid'
  471.    DWORD resvd1;                       //
  472.    WORD  resvd2;                       // always 0
  473.    WORD  dataRefIndex;                 // always 1
  474.    WORD  version;                      //
  475.    WORD  revLevel;                     //
  476.    DWORD vendor;                       // 'appl' or other vendor
  477.    DWORD temporalQuality;              //
  478.    DWORD spatialQuality;               //
  479.    WORD  width;                        // Source image width in pixels
  480.    WORD  height;                       // Source image height in pixels
  481.    LFIXED hRes;                        // Horizontal resolution (eg: 72.0)
  482.    LFIXED vRes;                        // Vertical resolution (eg: 72.0)
  483.    DWORD dataSize;                     // Memory required for image data
  484.    WORD  frameCount;                   // always 0
  485.    char  name[32];                     // Compression algorithm (eg: Animation)
  486.    WORD  depth;                        // Pixel depth of source image
  487.    WORD  clutID;                       // Macintosh ROM Color table ID
  488.   } ImageDescription;
  489.  
  490. typedef ComponentResult (_far _cdecl *ComponentRoutine) (VOID);
  491. typedef DWORD (FAR CDECL *ENTRYFUNC) (VOID);
  492. typedef VOID (FAR PASCAL *FIXUPFUNC) (ENTRYFUNC);
  493. typedef LONG Component;
  494. typedef LONG ComponentInstance;
  495.  
  496. typedef struct tagComponentDescription { // Hungarian: cd
  497.   OSType  ostypeComponentType;         // component identifier
  498.   OSType  ostypeComponentSubType;      // sub-type
  499.   OSType  ostypeComponentManufacturer; // vendor ID
  500.   DWORD   dwComponentFlags;            // control flags
  501.   DWORD   dwComponentFlagsMask;        // mask for control flags
  502.   ComponentRoutine   crEntryPoint;     // pointer to entry point
  503.   HRSRC   hrsrcName;                   // handle to name string
  504.   HRSRC   hrsrcInfo;                   // handle to info string
  505.   HRSRC   hrsrcIcon;                   // handle to icon
  506. } ComponentDescription, FAR *LPCD;
  507.  
  508.  
  509.  
  510.  
  511. // Macros
  512. // ------
  513. #define MAKELFIXED(integ, fract) ((LONG)(((WORD)(fract)) | (((DWORD)((WORD)(integ))) << 16)))
  514.  
  515. #define MAKESFIXED(integ, fract) ((int)(((BYTE)(fract)) | (((WORD)((BYTE)(integ))) << 8)))
  516.  
  517. #define QTFOURCC(ch0, ch1, ch2, ch3)                                \
  518.                  ((DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) |  \
  519.                  ((DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ))
  520.  
  521.  
  522. // ToolBox Callbacks and Handles
  523. // -----------------------------
  524. typedef const struct _tagQTHandle { int unused; } FAR *Handle;
  525. typedef long Size;
  526. typedef LPVOID Movie;
  527. typedef LPVOID Media;
  528. typedef LPVOID Track;
  529. typedef Handle SampleDescriptionHandle;
  530. typedef OSErr (CALLBACK *MovieRgnCoverProc) (Movie, HDC, LONG);
  531.  
  532.  
  533. // Movie Controller Callbacks and Handles
  534. // --------------------------------------
  535. typedef ComponentInstance MovieController;
  536. typedef BOOL (CALLBACK *MCActionFilter) (MovieController, UINT, LPVOID, LONG);
  537.  
  538.  
  539. // Support C++ Function Invocations
  540. // --------------------------------
  541. #ifdef __cplusplus
  542.   extern "C" {
  543. #endif
  544.  
  545.  
  546. // Function calling convention
  547. // ---------------------------
  548. #define QTAPI _far _cdecl
  549.  
  550. // Macintosh toolbox equivalents
  551. // -----------------------------
  552.  
  553. Handle  QTAPI    NewHandle          ( Size byteCount);
  554. LPVOID  QTAPI    DereferenceHandle  ( Handle theHandle);
  555. void    QTAPI    HLock              ( Handle theHandle);
  556. void    QTAPI    HUnlock            ( Handle theHandle);
  557. Size    QTAPI    GetHandleSize      ( Handle theHandle);
  558. OSErr   QTAPI    MemError           ( VOID);
  559. void    QTAPI    SetHandleSize      ( Handle theHandle, Size newSize);
  560. void    QTAPI    DisposeHandle      ( Handle theHandle);
  561. signed char QTAPI  HGetState        ( Handle theHandle);
  562. void    QTAPI    HSetState          ( Handle theHandle,signed char newState);
  563.  
  564.  
  565. // Quicktime Functions
  566. // -------------------
  567.  
  568. OSErr           QTAPI QTInitialize (LPLONG);
  569. VOID            QTAPI QTTerminate (VOID);
  570. VOID            QTAPI  AddTime ( TimeRecord FAR *, const TimeRecord FAR *);
  571. VOID            QTAPI  AlignWindow ( WindowPtr wp, Boolean front, LPRECT aligmentRect,AlignmentProcRecordPtr alignmentProc);
  572. VOID            QTAPI  ClearMoviesStickyError ( VOID);
  573. OSErr           QTAPI  CloseMovieFile ( MovieFile);
  574. OSErr           QTAPI  ClosePictureFile ( PicFile);
  575. VOID            QTAPI  ConcatMatrix( const MatrixRecord FAR *srcMatrix,MatrixRecord FAR *destMatrix);
  576. VOID            QTAPI  ConvertTimeScale ( TimeRecord FAR *, TimeScale);
  577. LONG            QTAPI  CountUserDataType ( UserData, OSType);
  578. OSErr           QTAPI  DeleteMovieFile ( LPCSTR);
  579. VOID            QTAPI  DisposeMovie ( Movie);
  580. VOID            QTAPI  DisposeMovieController ( MovieController);
  581. VOID            QTAPI  DisposePicture ( PicHandle);
  582. OSErr           QTAPI  DrawPicture ( HDC, PicHandle, const LPRECT, ProgressProcRecordPtr);
  583. OSErr           QTAPI  DrawPictureFile ( HDC, PicFile, const LPRECT, ProgressProcRecordPtr);
  584. OSErr           QTAPI  EnterMovies ( VOID);
  585. VOID            QTAPI  ExitMovies ( VOID);
  586. VOID            QTAPI  GetMediaHandlerDescription( Media,OSType FAR *,LPSTR,OSType FAR *);
  587. short           QTAPI  GetMediaLanguage ( Media);
  588. OSErr           QTAPI  GetMediaSample ( Media, Handle, long, long FAR *,
  589.                                 TimeValue, TimeValue FAR *, TimeValue FAR *,
  590.                                 SampleDescriptionHandle,
  591.                                 long FAR *, long, long FAR *,
  592.                                 short FAR *);
  593. VOID            QTAPI  GetMediaSampleDescription( Media,LONG,SampleDescriptionHandle);
  594. TimeScale       QTAPI  GetMediaTimeScale ( Media);
  595. Track           QTAPI  GetMediaTrack ( Media);
  596. Boolean         QTAPI  GetMovieActive ( Movie);
  597. VOID            QTAPI  GetMovieActiveSegment ( Movie, TimeValue FAR *, TimeValue FAR *);
  598. VOID            QTAPI  GetMovieBox ( Movie, LPRECT);
  599. LONG            QTAPI  GetMovieCreationTime ( Movie);
  600. LONG            QTAPI  GetMovieDataSize ( Movie, TimeValue, TimeValue);
  601. TimeValue       QTAPI  GetMovieDuration ( Movie);
  602. Track           QTAPI  GetMovieIndTrack ( Movie, LONG);
  603. Track           QTAPI  GetMovieIndTrackType ( Movie, LONG, OSType, LONG);
  604. VOID            QTAPI  GetMovieMatrix( Movie theMovie,MatrixRecord FAR *theMatrix);
  605. LONG            QTAPI  GetMovieModificationTime ( Movie);
  606. PicHandle       QTAPI  GetMoviePict ( Movie, TimeValue);
  607. PicHandle       QTAPI  GetMoviePosterPict ( Movie);
  608. TimeValue       QTAPI  GetMoviePosterTime ( Movie);
  609. LFIXED          QTAPI  GetMoviePreferredRate ( Movie);
  610. SFIXED          QTAPI  GetMoviePreferredVolume ( Movie);
  611. VOID            QTAPI  GetMovieSelection ( Movie, TimeValue FAR *, TimeValue FAR *);
  612. OSErr           QTAPI  GetMoviesError ( VOID);
  613. OSErr           QTAPI  GetMoviesStickyError ( VOID);
  614. ComponentResult QTAPI  GetMovieStatus ( Movie, LPVOID);
  615. TimeValue       QTAPI  GetMovieTime ( Movie, TimeRecord FAR *);
  616. TimeScale       QTAPI  GetMovieTimeScale ( Movie);
  617. LONG            QTAPI  GetMovieTrackCount ( Movie);
  618. UserData        QTAPI  GetMovieUserData ( Movie);
  619. OSType          QTAPI  GetNextUserDataType ( UserData, OSType);
  620. OSErr           QTAPI  GetPictureFileHeader ( PicFile, LPRECT, OpenCPicParams FAR *);
  621. OSErr           QTAPI  GetPictureFileInfo ( PicFile, ImageDescription FAR *);
  622. PicHandle       QTAPI  GetPictureFromFile ( PicFile);
  623. OSErr           QTAPI  GetPictureInfo ( PicHandle, ImageDescription FAR *);
  624. HPALETTE        QTAPI  GetPicturePalette ( PicHandle);
  625. OSErr           QTAPI  GetSoundInfo ( Movie, SoundDescription FAR *);
  626. VOID            QTAPI  GetTrackDimensions( Track theTrack,Fixed FAR *width,Fixed FAR *height);
  627. Boolean         QTAPI  GetTrackEnabled ( Track th);
  628. Media           QTAPI  GetTrackMedia ( Track);
  629. VOID            QTAPI  GetTrackMatrix( Track theTrack,MatrixRecord FAR *theMatrix);
  630. Movie           QTAPI  GetTrackMovie ( Track);
  631. PicHandle       QTAPI  GetTrackPict ( Track, TimeValue);
  632. OSErr           QTAPI  GetUserData ( UserData, LPHANDLE, OSType, LONG, LPLONG);
  633. OSErr           QTAPI  GetUserDataText ( UserData, LPHANDLE, OSType, LONG, UINT, LPLONG);
  634. OSErr           QTAPI  GetVideoInfo ( Movie, ImageDescription FAR *);
  635. VOID            QTAPI  KillPicture ( PicHandle);
  636. OSErr           QTAPI  MovieSearchText ( Movie, Ptr, long, long, Track FAR *, TimeValue FAR *, long FAR *);
  637. MovieController QTAPI  NewMovieController ( Movie, const LPRECT, LONG, HWND);
  638. OSErr           QTAPI  NewMovieFromDataFork ( Movie FAR *, HFILE, LONG, UINT);
  639. OSErr           QTAPI  NewMovieFromFile ( Movie FAR *, MovieFile, LPINT, LPSTR, UINT, Boolean FAR *);
  640. VOID            QTAPI  NormalizeRect ( LPRECT);
  641. OSErr           QTAPI  OpenMovieFile ( LPCSTR, MovieFile FAR *, UINT);
  642. OSErr           QTAPI  OpenPictureFile ( LPCSTR, PicFile FAR *, UINT);
  643. DIBHandle       QTAPI  PictureToDIB ( PicHandle);
  644. OSErr           QTAPI  PrerollMovie ( Movie, TimeValue, LFIXED);
  645. Boolean         QTAPI  PtInMovie ( Movie, POINT);
  646. Boolean         QTAPI  PtInTrack( Track theTrack,POINT thePoint);
  647. OSErr           QTAPI  PutMovieIntoTypedHandle( Movie, Track,
  648.                                 OSType, Handle,TimeValue,TimeValue,LONG,ComponentInstance);
  649. VOID            QTAPI  SetMovieActive ( Movie, Boolean);
  650. VOID            QTAPI  SetMovieBox ( Movie, const LPRECT);
  651. VOID            QTAPI  SetMovieCoverProcs ( Movie, MovieRgnCoverProc, MovieRgnCoverProc, LONG);
  652. VOID            QTAPI  SetMoviePlayHints ( Movie, LONG, LONG);
  653. OSErr           QTAPI  SetTrackEnabled ( Track th, Boolean);
  654. VOID            QTAPI  SubtractTime ( TimeRecord FAR *, const TimeRecord FAR *);
  655. TimeValue       QTAPI  TrackTimeToMediaTime ( TimeValue, Track);
  656. VOID            QTAPI  TransformRect( const MatrixRecord FAR *theMatrix,LPRECT theRect,LPVOID);
  657. OSErr           QTAPI  UpdateMovie ( Movie);
  658. ComponentResult QTAPI  MCActivate ( MovieController, HWND, Boolean);
  659. ComponentResult QTAPI  MCClick ( MovieController, HWND, Point, long, long);
  660. ComponentResult QTAPI  MCDoAction ( MovieController, UINT, LPVOID);
  661. ComponentResult QTAPI  MCDraw ( MovieController, HWND);
  662. ComponentResult QTAPI  MCDrawBadge ( MovieController, HRGN, HRGN FAR *);
  663. ComponentResult QTAPI  MCGetControllerBoundsRect ( MovieController, LPRECT);
  664. ComponentResult QTAPI  MCGetControllerInfo ( MovieController, LPLONG);
  665. TimeValue       QTAPI  MCGetCurrentTime ( MovieController, TimeScale FAR *);
  666. Movie           QTAPI  MCGetMovie ( MovieController);
  667. ComponentResult QTAPI  MCGetVisible ( MovieController);
  668. ComponentResult QTAPI  MCIdle ( MovieController);
  669. ComponentResult QTAPI  MCIsControllerAttached ( MovieController);
  670. ComponentResult QTAPI  MCIsPlayerMessage ( MovieController, HWND, UINT, WPARAM, LPARAM);
  671. ComponentResult QTAPI  MCKey ( MovieController, WPARAM, LPARAM);
  672. ComponentResult QTAPI  MCMovieChanged ( MovieController, Movie);
  673. OSErr           QTAPI  MCNewMovieController ( MovieController, ComponentInstance, Movie, const LPRECT, LONG, HWND);
  674. ComponentResult QTAPI  MCNewAttachedController ( MovieController, Movie, HWND, POINT);
  675. ComponentResult QTAPI  MCPositionController ( MovieController, LPRECT, LPRECT, LONG);
  676. ComponentResult QTAPI  MCRemoveMovie ( MovieController);
  677. ComponentResult QTAPI  MCSetActionFilter ( MovieController, MCActionFilter, LONG);
  678. ComponentResult QTAPI  MCSetControllerAttached ( MovieController, Boolean);
  679. ComponentResult QTAPI  MCSetControllerBoundsRect ( MovieController, const LPRECT);
  680. ComponentResult QTAPI  MCSetMovie ( MovieController, Movie, HWND, POINT);
  681. ComponentResult QTAPI  MCSetVisible ( MovieController, Boolean);
  682. Component       QTAPI  CaptureComponent ( Component cCaptured, Component cCapturing);
  683. OSErr           QTAPI  CloseComponent ( ComponentInstance ci);
  684. OSErr           QTAPI  CloseComponentResFile ( short sFileNum);
  685. LONG            QTAPI  ComponentFunctionImplemented ( ComponentInstance ci, short sFunctionNumber);
  686. LONG            QTAPI  CountComponentInstances ( Component c);
  687. LONG            QTAPI  CountComponents ( ComponentDescription FAR *lpcdLooking);
  688. Component       QTAPI  FindNextComponent ( Component c, ComponentDescription FAR *lpcdLooking);
  689. HINSTANCE       QTAPI  GetComponentResFileInstance ( short sFileNum);
  690. OSErr           QTAPI  GetComponentInfo ( Component c, ComponentDescription FAR *lpcd);
  691. OSErr           QTAPI  GetComponentInstanceError ( ComponentInstance ci);
  692. LPVOID          QTAPI  GetComponentInstanceStorage ( ComponentInstance ci);
  693. LONG            QTAPI  GetComponentListModSeed ( void);
  694. LONG            QTAPI  GetComponentRefcon ( Component c);
  695. LONG            QTAPI  GetComponentVersion ( ComponentInstance ci);
  696. ComponentInstance QTAPI  OpenComponent ( Component c);
  697. short           QTAPI  OpenComponentResFile ( Component c);
  698. ComponentInstance QTAPI  OpenDefaultComponent ( OSType ostypeComponentType, OSType ostypeComponentSubType);
  699. Component       QTAPI  RegisterComponent ( LPCD lpcd, WORD wGlobal, FIXUPFUNC lpfnTBFixup, FIXUPFUNC lpfnCMFixup);
  700. OSErr           QTAPI  RegisterComponentResourceFile ( LPCSTR lpszDLL, WORD wGlobal);
  701. VOID            QTAPI  SetComponentInstanceError ( ComponentInstance ci, OSErr oserr);
  702. VOID            QTAPI  SetComponentInstanceStorage ( ComponentInstance ci, LPVOID lpvStorage);
  703. VOID            QTAPI  SetComponentRefcon ( Component c, LONG lRefcon);
  704. OSErr           QTAPI  SetDefaultComponent ( Component c, short sFlags);
  705. OSErr           QTAPI  UncaptureComponent ( Component c);
  706. OSErr           QTAPI  UnregisterComponent ( Component c);
  707. OSErr           QTAPI  UnregisterComponentResourceFile ( LPCSTR lpszDLL);
  708.  
  709. // End of Functions
  710. // ----------------
  711. #ifdef __cplusplus
  712.   }
  713. #endif
  714.  
  715.  
  716. // End of QTW.H
  717. // ------------
  718. #endif // __QTW_H__
  719.